package com.tobbetu.denemeproje;


import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author selaskar
 */
public class RetimeSubtitle {

    private static ArrayList<String> satırlar=new ArrayList<String>();
    private static ArrayList<String> süreler=new ArrayList<String>();
    private static ArrayList<String> süreler2=new ArrayList<String>();
    private static ArrayList<String> süreler3=new ArrayList<String>();

    public static void main(String[] args)
    {
        try {
            dosyayıOku(args[1]);
            
            
            
            zamanlarıAl();

            değişimiİşle(Integer.parseInt(args[0]));

            dosyayaYaz((args.length==3) ? args[2] : args[1] );
            
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }
    private static void dosyayıOku(String path) throws IOException
    {
        BufferedReader bf=new BufferedReader(new FileReader(new File(path)));
        String satır=bf.readLine();
        while(satır!=null){
            satırlar.add(satır);
            satır=bf.readLine();
        }

    }
    private static void dosyayaYaz(String path) throws IOException
    {
        PrintWriter pw=new PrintWriter(new File(path));
        int index=0;
        for(int i=0;i<satırlar.size();i++){
            if(satırlar.get(i).indexOf("-->")==-1)
                pw.println(satırlar.get(i));
            else
                pw.println(süreler.get(index++)+" --> "+süreler.get(index++));
        }
        pw.close();

    }
    public static void zamanlarıAl() throws Exception
    {
        for(String s:satırlar)
        {
            if(s.indexOf("-->")!=-1){
                try{
                    süreler.add(s.substring(0,s.indexOf("-->")-1));
                    süreler.add(s.substring(s.indexOf("-->")+4));
                }
                catch(Exception e){
                    throw new Exception("Dosyadaki zamanlama satırları düzensiz.all");
                }
            }
        }

    }
    public static void değişimiİşle(int değiştirilecekMilisaniye) throws Exception
    {
        for(int i=0;i<süreler.size();i++){
            String zaman=süreler.get(i);
            String saat=zaman.substring(0,zaman.indexOf(":"));
            String dakika=zaman.substring(zaman.indexOf(":")+1,zaman.lastIndexOf(":"));
            String saniye=zaman.substring(zaman.lastIndexOf(":")+1,zaman.indexOf(","));
            String milisaniye=zaman.substring(zaman.indexOf(",")+1);

            if(saat.length()==2 & dakika.length()==2 & saniye.length()==2 & milisaniye.length()==3)
            {
                Zamanlama z=new Zamanlama(Integer.parseInt(saat), Integer.parseInt(dakika), Integer.parseInt(saniye), Integer.parseInt(milisaniye));
                if(değiştirilecekMilisaniye>0)
                    z.ekle(değiştirilecekMilisaniye);
                else
                    z.çıkar(değiştirilecekMilisaniye);
                süreler.set(i, z.toString());
            }
            else
                throw new Exception("Dosyadaki zamanlama satırları düzensiz.işlee");
        }

    }


}
